Search

藉著在 Ant 哥這一篇下的回覆(
  • Share this:

藉著在 Ant 哥這一篇下的回覆(
https://www.facebook.com/1815507975/posts/10215890666418971/?d=n),剛好能帶出一個重點,其實CI 跟 CD 從來都不該是指 "build server",而是狀態。

持續整合 (Continuous Integration) 指的是:當團隊不只一個人對同一份 code base 在進行修改時,能多快地被整合在一起,並確認執行結果符合需求預期。

持續交付 (Continuous Delivery) 指的則更偏向:對 code base 的任何修改,在整合完確認無誤之後,可以不間斷、自動、快速地交付到 production 給使用者用。(包含 hotfix 修問題,包含 feature flag 的 rollback)而不是得等待 release 的日期才能 release,而不是得等一堆環境上的手動測試完,再自行打包對應的 feature code base 上到 production.

那種 DevOps = CI/CD = build server 的,要嘛就是被迫得用這樣的說明其他人才聽得懂,要嘛就是根本不懂 DevOps 跟 CI/CD 背後真正的涵義,以及那種狀態下的軟體開發交付,以及真正想要解決的問題。(自動化只是其中的一小個必要條件)

看大家說的 CI, 可以簡單把持續整合當作有狹義跟廣義兩種。

狹義就是只到拉 code 跟 build 跟打包。

廣義就是包含整合 build 完的 package 「是不是符合預期」,要知道使用起來有沒有符合預期,自動化測試是基本的。包含最基底針對邏輯的單元測試,還有部署到測試環境之後 end-to-end 的驗收測試。

有趣的是,大部分人在講 CI 都是廣義的,該有的都要有(我們以前 build job 還包含要自動產生符合公司規定或政府規定的 上版文件並自動發送通知),基本款就是拉 code, build, 靜態程式碼分析, 自動單元測試, 打包, 部署到下個環境, 執行該環境的 end-to-end 測試,產生文件。

但大部分嘴巴講廣義 CI 的人,他們實際的 CI 卻是狹義的 CI,只有拉 code + build, 勉強多一點靜態程式碼分析的套件,但也只是分析而已,也不會依據報告結果去修正或重構。


Tags:

About author
我是 Joey Chen,闖蕩江湖的稱號是 91,熱血點火師,專門燃起大家心裡面的熱情與初衷。 目前為 Odd-e Taiwan 的負責人,同時也是 JetBrains 在台灣的培訓夥伴,至今也仍是熱愛學習與享受各種程式語言之美的 programmer。 身為敏捷教練,擅長 Agile、Scrum、LeSS 等敏捷文化與協作框架的落實與導入,如何讓大家 being agile 而不是 doing agile。同時喜歡結合各家所長,例如 Lean, Kanban 等,重點是持續改善、解決問題、端出成果,而不執著於某種特定方法論或框架。 身為技術教練,我也是極限編程(extreme programming)的狂熱者,我擅長用這些技術與工程實踐來提昇產品的品質、團隊的生產力、降低營運風險,因應市場與公司的商業目標,讓團隊能具有高適應與反應能力的基礎建設。例如 實例化需求、ATDD、BDD、TDD、重構、自動化單元測試/整合測試/驗收測試、CI/CD、code review、pair programming、mob-programming 等等。 同時,我也是推崇 極速開發 的 developer,追求從想法到產品程式碼的完成,中間的時間差能趨近於零,也就是劍隨心轉,想到哪,程式碼就長到哪的境界。從想法到實現中間的等待,其實在實務上佔了很大的 context switch 成本,如果能讓這段時間縮到最短,就能比其他人多嘗試更多種解決方案,進而挑選出最剛好的方案。 同時也是技術社群的活躍份子,從 2010 年開始連任九屆的微軟 MVP,兼任 MSDN 論壇板主,也曾經獲得年度 MSDN 文件庫刊登數量世界第一的榮耀。對微軟技術有愛,對 C# 有愛,對自動測試有愛,對重構與設計模式有愛。近年來對 Java, PHP, Python 也充滿濃厚的興趣,曾帶領客戶團隊中不會寫程式的 QA ,一起用 Python 完成超過百個 mobile UI 自動化測試。 擁有超過十年擔任開發團隊 tech leader, trainer, coach 與 mentor 的經驗,進行的企業內部與公開技術培訓課程已超過 100 場,培訓過的開發人員超過 1000 位,擔任研討會與社群活動的講師次數超過 30 次。 同時也是技術書籍的作者與譯者,與朋友合著的書籍包含《ASP.NET MVC 5:網站開發美學》、《ASP.NET MVC 4 網站開發美學》,翻譯的書籍有《單元測試的藝術-第二版》、《敏捷開發實踐》、《進入IT產業必讀的200個 .NET面試決勝題》。 如果想跟我即時互動,歡迎直接私訊或 email 至 [email protected]
請參考:https://tdd.best/about/
View all posts